package com.ylr.blog.framework.service;

import com.ylr.blog.framework.entity.BlogSpaceEntity;
import com.ylr.blog.common.dto.blog_space.BlogSpaceDto;
import com.ylr.blog.common.vo.blog_space.BlogSpaceVo;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * Created by IntelliJ IDEA.
 *
 * @author wyw
 * date: 2023-05-18 21:39:53
 * className: BlogSpaceService
 * version: 1.0
 * description:
 */
public interface BlogSpaceService extends IService<BlogSpaceEntity> {

    /**
     * 保存用户博客空间操作
     * @param blogSpaceVo 参数对象
     */
    void saveBlogSpace(BlogSpaceVo blogSpaceVo);

    /**
     * 添加用户博客空间操作
     * @param userId 用户主键
     * @param name   空间名称
     */
    void addBlogSpace(Long userId, String name);

    /**
     * 获取博客标签操作
     * 用户获取自己的博客空间
     * @return 博客标签列表
     */
    List<BlogSpaceDto> getBlogSpaceList();

    /**
     * 获取博客标签操作
     * 用户获取自己的博客空间
     * @return 博客标签对象
     */
    BlogSpaceDto getBlogSpace(Long id);

    /**
     * 获取下一个排序等级操作
     * @param parentId 父级空间主键
     * @return 排序等级值
     */
    Integer getNextSort(Long parentId);

    /**
     * 修改博客空间操作
     * 用户修改自己的博客空间
     * @param blogSpaceVo 参数对象
     */
    void updateBlogSpace(BlogSpaceVo blogSpaceVo);

    /**
     * 删除博客空间操作
     * 用户删除自己的博客空间
     * @param id 空间主键
     */
    void deleteBlogSpace(Long id);

}

